package day11;

import java.io.File;

/**
 * @author Xiao
 * @date 2021/7/31
 */
public class Test03 {
    /**
     * 3. 已知File类中存在一个方法 long length() 可以获取文件的大小，但是不能直接获取文件夹的大小
     *     现要求：定义方法接收一个文件夹的File对象，获取文件夹的实际大小（提示：将文件夹中所有的文件大小加起来就是整个文件夹的大小）
     */
    public static void main(String[] args) {
        File dir = new File("videoPractice");
        long l = getLong(dir);
        System.out.println("long(videoPractice):" + l/1024 + "KB");
    }

    private static long getLong(File dir) {
        File[] files = dir.listFiles();
        long l = 0;
        if (files != null) {
            for (File file : files) {
                if (file.isFile()) {
                    l += file.length();
                } else {
                    l += getLong(file);
                }
            }
        }
        return l;
    }
}
